// 把wx.login Api转化成 promise风格
// const wxLogin = (options = {}) =>{
//   return new Promise((resolve,reject)=>{
//     wx.login({
//       ...options,
//       success:resolve,
//       fail:reject
//     })
//   })
// }
const promiseify = require('@/utils/promiseify')
const wxLogin = promiseify(wx.login)
const wxRequest = promiseify(wx.request)
// 引入SDK核心类
var QQMapWX = require('@/libs/qqmap-wx-jssdk');
var qqmapsdk

Page({
  /**
   * 页面的初始数据
   */
  data: {
    avatar: "https://img-blog.csdnimg.cn/img_convert/b573b00bed7126db2c209ed01eb35189.png"
  },
  onLoad: function () {
    // 实例化API核心类
    qqmapsdk = new QQMapWX({
      key: 'OE2BZ-PQ7CJ-DCJFF-XHRF7-KVC2J-DXBE7'
    });
  },

  // 获取地理位置
  async getLocation() {
    // 获取经纬度
    const {
      latitude,
      longitude
    } = await wx.getLocation()
    // 1. 打开经纬度所在的地图位置（没有搜索位置的功能）
    // const res = await wx.openLocation({
    //   latitude,
    //   longitude
    // })
    // console.log(res)
    // 2. 打开地图选择位置
    // wx.chooseLocation({
    //   latitude: 29.652855,
    //   longitude: 116.002282,
    //   success(res) {
    //     console.log('res', res.address)
    //   },
    //   fail(err) {
    //     console.log('err', err)
    //   }
    // })
    // 3. 调用腾讯api 逆地址解析
    qqmapsdk.reverseGeocoder({
      location: {
        latitude: 29.698353,
        longitude: 116.061618
      },
      success(res){
        console.log('res',res)
      },
      fail(err){
        console.log(err)
      }
    })
  },

  async loginHandler() {
    // 1. 获取code
    let {
      code
    } = await wxLogin()
    // 2. 调用开发服务器换取openid
    let {
      data
    } = await wxRequest({
      url: 'http://127.0.0.1:3000/api/getopenid',
      method: "POST",
      data: {
        code
      },
    })
    const {
      token,
    } = data
    if (data.code === 200) {
      // 存入本地存储
      wx.setStorageSync('access_token', token)
      wx.showToast({
        title: '登录成功',
        icon: "success",
        success() {
          setTimeout(() => {
            wx.switchTab({
              url: '/pages/home/home',
            })
          }, 500)
        }
      })
    } else {
      console.log('登录失败')
    }

  },

  onChooseAvatar(event) {
    this.setData({
      avatar: event.detail.avatarUrl
    })
    // 也可以将路径上传给服务器
  },
  // 获取用户昵称
  submit(event) {
    console.log(event.detail.value.nickname)
  },

  // 转发给好友
  onShareAppMessage(obj) {
    console.log(obj.from); // 分享的来源
    return {
      title: '分享的标题',
      imageUrl: "/assets/images/bby.png",
      path: "/pages/user/user.js"
    }
  },

  // 分享到朋友圈
  onShareTimeline() {
    return {
      title: '帮我看一刀',
      query: "userid=5",
      imageUrl: "/assets/images/bby.png"
    }
  },

  // 获取用户的openid
  getOpenId() {
    // 1. 通过wx.login() 获取到临时令牌 code
    wx.login({
      success: (res) => {
        const code = res.code
        // 2. 将code传递给开发（商户）服务器
        wx.request({
          url: 'http://127.0.0.1:3000/api/getopenid',
          method: "POST",
          data: {
            code
          },
          success(res) {
            console.log(res.data.openid)
          }
        })
      },
    })

    // 3. 开发服务器那么接收code,去调用微信官方的api，从而获取openid，

  },

  // 手机号快速验证组件
  getPhoneNumber(event) {
    console.log('快速验证', event.detail.code)
    const code = event.detail.code
    wx.request({
      url: 'http://127.0.0.1:3000/api/getphonenumber',
      method: "POST",
      data: {
        code
      },
      success(res) {
        console.log('res:', res.data.phone_info.phoneNumber)
      },
      fail() {
        console.log('fail')
      }
    })
  },
  // 手机号实时验证组件
  getrealtimephonenumber(event) {
    console.log('实时验证', event.detail.code)
  }
})